home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 October: Technology Seed / ADC Seed CD - October 1999.toast / FireWire / FireWire_2.1_SDK_DR3 / Source / FWiX / FWiXFamily / FWiXPriv.h < prev   
Encoding:
C/C++ Source or Header  |  1999-05-17  |  4.7 KB  |  158 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        FWiXPriv.h
  3.  
  4.     Contains:    Private definitions and interfaces for FireWire File Exchange
  5.                 driver family.
  6.  
  7.     Version:    xxx put version here xxx
  8.  
  9.     Written by:    Jay Lloyd
  10.  
  11.     Copyright:    © 1996-1997, 1999 by Apple Computer, Inc., all rights reserved.
  12.  
  13.     File Ownership:
  14.  
  15.         DRI:                xxx put dri here xxx
  16.  
  17.         Other Contact:        xxx put other contact here xxx
  18.  
  19.         Technology:            xxx put technology here xxx
  20.  
  21.     Writers:
  22.  
  23.         (jkl)    Jay Lloyd
  24.  
  25.     Change History (most recent first):
  26.  
  27.        <FW7>      4/8/99    jkl        More interface cleanup.
  28.        <FW6>      4/8/99    jkl        Converted to use GDF services.
  29.        <FW5>      2/7/97    ES        Added defs for queueing client Apple Events.
  30.        <FW4>      1/8/97    ES        Added defs for FWX nodes.
  31.        <FW3>    12/19/96    GG        Added FWXScannerEntryPointProc Definition.
  32.        <FW2>    11/13/96    JL        Moved from DoDriverIO interface back to CallDriver interface.
  33.        <FW1>     10/2/96    JL        initial check-in, copied from avt family
  34.  
  35. */
  36.  
  37. #ifndef __FWIXPRIV__
  38. #define __FWIXPRIV__
  39.  
  40. #ifndef __TYPES__
  41. #include <Types.h>
  42. #endif
  43. #ifndef __APPLEEVENTS__
  44. #include <AppleEvents.h>
  45. #endif
  46. #ifndef __NAMEREGISTRY__
  47. #include <NameRegistry.h>
  48. #endif
  49.  
  50. #ifdef __cplusplus
  51. extern "C" {
  52. #endif
  53.  
  54. #if PRAGMA_IMPORT_SUPPORTED
  55. #pragma import on
  56. #endif
  57.  
  58. #if PRAGMA_ALIGN_SUPPORTED
  59. #pragma options align=mac68k
  60. #endif
  61.  
  62. typedef struct FWXClientDataStruct
  63.                                 FWXClientData,
  64.                                 *FWXClientDataPtr;
  65.  
  66. typedef struct FWXDriverDataStruct
  67.                                 FWXDriverData,
  68.                                 *FWXDriverDataPtr;
  69.  
  70. typedef struct FWXNodeDataStruct
  71.                                 FWXNodeData,
  72.                                 *FWXNodeDataPtr;
  73.  
  74. struct FWXFamilyDataStruct
  75. {
  76.     FWXClientDataPtr            pFWXClientList;            // Pointer to list of registered clients.
  77.     FWXDriverDataPtr            pFWXDriverList;            // Pointer to list of installed drivers.
  78.     UInt32                        numFWXDrivers;            // Number of drivers in above list.
  79.     FWXNodeDataPtr                pFWXNodeList;            // Pointer to list of installed nodes.
  80.     UInt32                        numFWXNodes;            // Number of nodes in above list.
  81. };
  82. typedef struct FWXFamilyDataStruct
  83.                                 FWXFamilyData,
  84.                                 *FWXFamilyDataPtr;
  85.  
  86. typedef struct ClientAppleEventDataStruct
  87.                                 ClientAppleEventData,
  88.                                 *ClientAppleEventDataPtr;
  89. struct ClientAppleEventDataStruct
  90. {
  91.     ClientAppleEventDataPtr        pNextClientAppleEventData;    // Link to next client Apple Event.
  92.     AppleEvent                    clientAppleEvent;        // The apple event to send.
  93.     Boolean                        clientAppleEventValid;    // True if above is valid.
  94.  
  95.     AppleEvent                    *reply;                    // Apple Event reply.
  96.     AESendMode                    sendMode;                // Send mode of Apple Event.
  97.     AESendPriority                sendPriority;            // Priority of Apple Event.//zzz how to best implement this wrt SWInts???
  98.     long                        timeOutInTicks;            // Timeout of Apple Event.//zzz how to best implement this wrt SWInts???
  99.     AEIdleUPP                    idleProc;                // Idle proc for Apple Event.
  100.     AEFilterUPP                    filterProc;                // Filter proc for Apple Event.
  101. };
  102.  
  103. struct FWXClientDataStruct
  104. {
  105.     FWXClientDataPtr            pPrevFWXClientData,
  106.                                 pNextFWXClientData;        // Pointer to previous and next client in list.
  107.  
  108.     QHdrPtr                        clientAppleEventQueue;    // Queue of Apple Events to send to client.
  109.  
  110.     AppleEvent                    deviceAddedAppleEvent;    // Apple event for device added notification.
  111.     Boolean                        deviceAddedAppleEventValid;    // True if above event is valid.
  112.  
  113.     AppleEvent                    deviceRemovedAppleEvent;    // Apple event for device removed notification.
  114.     Boolean                        deviceRemovedAppleEventValid;    // True if above event is valid.
  115.  
  116.     AEAddressDesc                clientAEAddress;        // Address of client.
  117.     Boolean                        clientAEAddressValid;    // True if above descriptor is valid.
  118.  
  119.     UInt32                        clientContextData;        // Data for use by client.
  120. };
  121.  
  122. struct FWXDriverDataStruct
  123. {
  124.     FWXDriverDataPtr            pNextFWXDriverData;        // Pointer to next driver in driver list.
  125.     FWXDriverID                    fwxDriverID;            // ID referencing this data record.
  126.     FWXInterfaceProcPtr            pFWXDriverInterface;    // Pointer to main interface proc
  127.     Ptr                            pDriverSpecificData;    // Data specific to driver.
  128.     RegEntryID                    deviceRegistryID;        // Name registry ID of AV transport control device
  129.     CFragConnectionID            driverConnID;            // Code fragment connection ID for this driver.
  130.     UInt32                        numConnections;            // Number of connections to this driver.
  131.     Boolean                        deviceDisconnected;        // True if device was disconnected.
  132. };
  133.  
  134. struct FWXNodeDataStruct
  135. {
  136.     FWXNodeDataPtr                pNextFWXNodeData;        // Pointer to next node in node list.
  137.     FWXDriverID                    fwxDriverID;            // ID of driver controlling this node.
  138.     Ptr                            pNodeSpecificData;        // Data specific to node.
  139.     UInt32                        fwxNodeRegistrationReference;    // Node registration reference.
  140.     UInt32                        numConnections;            // Number of connections to this node.
  141.     Boolean                        nodeDisconnected;        // True if node was disconnected.
  142.     Boolean                        nodeOpen;                // True if node is open.
  143. };
  144.  
  145. #if PRAGMA_ALIGN_SUPPORTED
  146. #pragma options align=reset
  147. #endif
  148.  
  149. #if PRAGMA_IMPORT_SUPPORTED
  150. #pragma import off
  151. #endif
  152.  
  153. #ifdef __cplusplus
  154. }
  155. #endif
  156.  
  157. #endif /* __FWIXPRIV__ */
  158.